package com.glela.platform.service;

import java.util.Collection;
import java.util.List;

import com.glela.common.exception.BizException;
import com.glela.platform.model.UserPromotion;
import com.glela.platform.vo.GoodsSimpleVo;
import com.glela.platform.vo.UserPromotionVo;

/**
 * @author liujie
 * @2016年10月25日
 */
public interface UserPromotionService {

	public List<UserPromotion> selectUserPromotionByUserIdEx(long userId, long goodId, int brandId, long totalPrice);

	public List<UserPromotionVo> selectUserPromotionByUserIdEx(long userId, List<GoodsSimpleVo> list);

	/**
	 * 根据优惠ID及用户ID获取用户当前未使用优惠券信息
	 * @param promotionDetailId 优惠id
	 * @param userId 用户ID
	 * @return UserPromotion
	 * @author zls
	 */
	public UserPromotion selectUserPromotionByPromotionDetailIdAndUserId(int promotionDetailId, long userId);

	/**
	 * 减掉一次优惠券
	 * @param promotionDetailId 优惠券id
	 * @param userId 用户ID
	 * @return int 处理优惠券条数
	 * @author zls
	 */
	public int updateSubUserPromotionNumber(int promotionDetailId, long userId);

	/**
	 * 花38元购买会员后，赠送一个礼包给付费会员
	 * 
	 * @author 卫耀华
	 * @param userId
	 */
	public void giveGiftPackageToVIP(long userId) throws BizException;

	/**
	 * <dl>
	 * <dt>修改优惠券为已使用</dt>
	 * </dl>
	 * @param id 用户优惠券ID
	 * @return int
	 * @author zls
	 * @date 2017年11月16日 下午3:14:37
	 */
	boolean modifyToUse(int id);

	/**
	 * <dl>
	 * <dt>查询用户可用优惠券</dt>
	 * </dl>
	 * @param userId 用户ID
	 * @param brandIds 品牌ID集合
	 * @param goodsIds 商品ID集合
	 * @return List<UserPromotionVo>
	 * @author zls
	 * @date 2017年8月18日 下午12:22:01
	 */
	List<UserPromotionVo> selectUserPromotion(Long userId, Collection<Object> brandIds, Collection<Object> goodsIds);

}
